package com.tjetc.controller;

import com.tjetc.pojo.po.UserPo;
import com.tjetc.pojo.request.UserRequest;
import com.tjetc.pojo.vo.UserVo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author gaoyongxiang
 * @version v1.0
 * @since 2025-10-10
 */
@SuppressWarnings("all")
@Controller
@ResponseBody
public class UserController {

    @RequestMapping("/get")
    public String getUser() {
        return "ok";
    }

    /*
         1. 当请求路径和资源路径产生冲突的时候，默认先找到对应的controller
         2. 如果不存在则会在指定目录中查找是否存在静态资源
         3. 我们可以通过改变拦截方式 直接定位静态资源 默认的拦截是/**
     */
//    @RequestMapping("/1.jpg")
    public String f1() {
        return "ok1";
    }


    @RequestMapping("/f2")
    public String f2() {
        return "ok";
    }

    // @RequestAttribute 这个注解可以直接从域对象中获取数据 针对于单体项目使用

    // XXXvo XXXpo XXXdto XXXrequest
    /*
        XXXvo: 从视图层的角度 密码 区分我们到底要给前端显示哪些内容
        XXXpo：从数据库层的角度， 和数据库中的字段保持一致
        XXXrequest： 从后端接收参数的角度，后端需要什么参数 参数从接口文档来
        XXXdto：数据交换的角度 比如去数据库要查询的参数
     */

    @RequestMapping("/f3")
    public UserVo f3(UserRequest userRequest) {
        UserVo userVo = new UserVo();
        userVo.setName(userRequest.getName());
        userVo.setAge(userRequest.getAge());
        //vo在service层将po转换成vo
        return userVo;
    }




    // 修改参数名以匹配用户实际使用的请求参数名 "nameandage"
    @RequestMapping("/f4")
    public UserVo f4(@RequestParam("nameandage") UserRequest userRequest) {
        UserVo userVo = new UserVo();
        userVo.setName(userRequest.getName());
        userVo.setAge(userRequest.getAge());
        //vo在service层将po转换成vo
        return userVo;
    }

}
